﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace Hotel.NhanVien
{
    public partial class Quanlynhanvien : Form
    {

        string gioitinh;
        int maNV;
        int temp = 0;
        private SqlConnection conn = new SqlConnection("Server=(local);DataBase=Hotel;Integrated Security=SSPI");
        public Quanlynhanvien()
        {
            InitializeComponent();
        }
              
        private void Quanlynhanvien_Load(object sender, EventArgs e)
        {
            //LayDanhSachNhanVien();
        }

        private void Action(string action)
        {
            switch (action)
            {
                case "Insert":
                    btnChinhSuaNhanVien.Enabled = btnThemNhanVien.Enabled= btnInBienLai.Enabled = btnTimKiemMotNhanVien.Enabled = btnXoaNhanVien.Enabled=btnTimKiemTatCaNhanVien.Enabled = false;
                    Reset();
                    break;
                case "Cancel":
                    btnChinhSuaNhanVien.Enabled = btnThemNhanVien.Enabled= btnInBienLai.Enabled = btnTimKiemMotNhanVien.Enabled = btnXoaNhanVien.Enabled = btnTimKiemTatCaNhanVien.Enabled = true;
                    break;
                case "Update":
                    btnThemNhanVien.Enabled = btnChinhSuaNhanVien.Enabled= btnInBienLai.Enabled = btnTimKiemMotNhanVien.Enabled = btnXoaNhanVien.Enabled = btnTimKiemTatCaNhanVien.Enabled = false;
                    break;
                case "Save":
                    btnThemNhanVien.Enabled = btnChinhSuaNhanVien.Enabled = btnInBienLai.Enabled = btnTimKiemMotNhanVien.Enabled = btnXoaNhanVien.Enabled = btnTimKiemTatCaNhanVien.Enabled = true;
                    break;
                default:
                    break;

            }
        }
        private void LayDanhSachNhanVien()
        {
            SqlDataAdapter da=null;
            string sql = "select TenNV,GioiTinh,NgaySinh,DiaChi,SoDT,NgayVaoLam,TenNhom,TenTaiKhoan from NhanVien where NhanVien.DaXoa=0";
            try
            {
                conn.Open();
                da = new SqlDataAdapter(sql, conn);
                DataTable tb = new DataTable();
                da.Fill(tb);
                dtgvNhanVien.DataSource = tb;
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message);
            }
            finally
            {
                conn.Close();
            }
            
        }

        private void LayMotNhanVien()
        {
            SqlDataAdapter da = null;
            if ((tboxTenNhanVien.Text == "") && (tboxTenNhanVien.Text == "") && (tboxTenNhom.Text == "") && (tboxSoDienThoai.Text == "") && (tboxDiaChi.Text == "") && (cbxGioiTinhNhanVien.Text == ""))
            {
                MessageBox.Show("Chưa nhập nội dung tìm kiếm!");
            }
            else
            {
                try
                {
                    conn.Open();
                    da = new SqlDataAdapter("select TenNV,GioiTinh,NgaySinh,DiaChi,SoDT,NgayVaoLam,TenNhom,TenTaiKhoan from NhanVien where ( ( TenNV LIKE N'%"+ tboxTenNhanVien.Text +"%' AND DiaChi like N'%" + tboxDiaChi.Text + "%' AND SoDT like '%" + (tboxSoDienThoai.Text) + "%' AND TenNhom like  N'%" + tboxTenNhom.Text + "%' AND GioiTinh like N'%" + cbxGioiTinhNhanVien.Text + "%' ) and NhanVien.DaXoa=0)", conn);
                    DataTable tb = new DataTable();
                    da.Fill(tb);
                    dtgvNhanVien.DataSource = tb;
                }
                catch (Exception ev)
                {
                    MessageBox.Show(ev.Message);
                }
                finally
                {
                    conn.Close();
                }
            }
        }
        private void Reset()
        {
            tboxTenNhanVien.Text = "";
            tboxTenNhom.Text = "";
            tboxTenTaiKhoan.Text = "";
            tboxSoDienThoai.Text="";
            tboxDiaChi.Text = "";
            cbxGioiTinhNhanVien.SelectedIndex = -1;
           
            dtpNgaySinh.Value = DateTime.Now;
            dtpNgayVaoLam.Value = DateTime.Now;
        }

        private void LayMaNV()
        {
            SqlDataReader dr = null;
            string sql = "select MaNV from NhanVien where TenNV =N'"+ tboxTenNhanVien.Text +"' and NhanVien.DaXoa=0";
            SqlCommand cmd = null;
            try
            {
                conn.Open();
                cmd = new SqlCommand(sql, conn);
                dr = cmd.ExecuteReader();
                while (dr.Read())
                {
                    maNV = Convert.ToInt32(dr[0].ToString());
                }
            }
            catch
            {

            }
            finally
            { 
                conn.Close();
            }
           
        }
        private void ThemMucLuong()
        {
            SqlCommand cmd = null;

            try
            {
                conn.Open();
                cmd = new SqlCommand("INSERT INTO Luong(MaNV,MucLuong,DaXoa) VALUES('" + maNV + "','" + tboxMucLuong.Text + "',0)", conn);
                cmd.ExecuteNonQuery();
            }
            catch
            {

            }
            finally
            {
                if (conn != null)
                {
                    conn.Close();
                }
            }
        }

        private void ChinhSuaThongTin()
        {
            SqlCommand cmd=null;
            DialogResult dr = MessageBox.Show("Xác nhận muốn lưu thông tin?", "Xác nhận", MessageBoxButtons.YesNo);
            if (dr == DialogResult.Yes)
            {
                try
                {
                    conn.Open();
                    cmd = new SqlCommand("UPDATE NhanVien SET TenNV = N'" + tboxTenNhanVien.Text + "',GioiTinh = N'" + gioitinh + "',NgaySinh = '" + dtpNgaySinh.Value + "',TenNhom = N'" + tboxTenNhom.Text + "',SoDT = '" + tboxSoDienThoai.Text + "',DiaChi = N'" + tboxDiaChi.Text + "',NgayVaoLam = '" + dtpNgayVaoLam.Value + "' where MaNV='" +maNV + "' and NhanVien.DaXoa=0 ", conn);
                    cmd.ExecuteNonQuery();
                    MessageBox.Show("Đã lưu thành công!");
                }
                catch (Exception ev)
                {
                    MessageBox.Show(ev.Message);
                }
                finally
                {
                    conn.Close();
                }
                LayDanhSachNhanVien();
            }
            else if (dr == DialogResult.No)
            {
                MessageBox.Show("Lưu không thành công!");
            }
        }

        private void btnTimKiemTatCaNhanVien_Click(object sender, EventArgs e)
        {
            LayDanhSachNhanVien();
            
        }

        private void btnTimKiemMotNhanVien_Click(object sender, EventArgs e)
        {
            LayMotNhanVien();
               
        }

        private void btnXoaNhanVien_Click(object sender, EventArgs e)
        {
            LayMaNV();
            SqlCommand cmd;
            DialogResult dr = MessageBox.Show("Bạn có chắc muốn xóa nhân viên này?", "Xác nhận", MessageBoxButtons.YesNo);
            if (dr == DialogResult.Yes)
            {
                try
                {
                    conn.Open();
                    cmd = new SqlCommand("update   NhanVien set DaXoa=1 where MaNV='"+maNV+"'", conn);
                    cmd.ExecuteNonQuery();
                    //MessageBox.Show("Đã thêm mới một nhân viên!");

                }
                catch (Exception evt)
                {
                    MessageBox.Show(evt.Message);
                }
                finally
                {
                    if (conn != null)
                    {
                        conn.Close();
                    }
                }
            }
            else if (dr == DialogResult.No)
            {
               // MessageBox.Show("Xóa nhân viên không thành công!");
            }
            LayDanhSachNhanVien();
        }

        private void btnChinhSuaNhanVien_Click(object sender, EventArgs e)
        {
            LayMaNV();
            temp = 0;
            Action("Update");
        }

        private void btnThemNhanVien_Click(object sender, EventArgs e)
        {
            temp = 1;
            Action("Insert");
            
        }



        private void tboxTenNhanVien_KeyPress(object sender, KeyPressEventArgs e)
        {
            e.Handled = (e.KeyChar >= 48 && e.KeyChar <= 57 );
        }


        private void tboxTenNhom_KeyPress(object sender, KeyPressEventArgs e)
        {
            e.Handled = (e.KeyChar >= 48 && e.KeyChar <= 57);
        }

        private void tboxSoDienThoai_KeyPress(object sender, KeyPressEventArgs e)
        {
            e.Handled = !(e.KeyChar >= 48 && e.KeyChar <= 57|| e.KeyChar==8);
        }

        private void cbxGioiTinhNhanVien_SelectedIndexChanged(object sender, EventArgs e)
        {
            int i = cbxGioiTinhNhanVien.SelectedIndex;
            switch (i)
            {
                case 0: gioitinh = "Nam";
                    break;
                case 1: gioitinh = "Nữ";
                    break;
            }
            
        }

        private void tboxMucLuong_KeyPress(object sender, KeyPressEventArgs e)
        {
            e.Handled = !(e.KeyChar >= 48 && e.KeyChar <= 57 || e.KeyChar == 8);
        }

      
        private void dtgvNhanVien_CellClick_1(object sender, DataGridViewCellEventArgs e)
        {
            tboxTenNhanVien.Text = dtgvNhanVien.CurrentRow.Cells[0].Value.ToString();
            cbxGioiTinhNhanVien.Text = dtgvNhanVien.CurrentRow.Cells[1].Value.ToString();
            dtpNgaySinh.Text = dtgvNhanVien.CurrentRow.Cells[2].Value.ToString();
            tboxDiaChi.Text = dtgvNhanVien.CurrentRow.Cells[3].Value.ToString();
            tboxSoDienThoai.Text = dtgvNhanVien.CurrentRow.Cells[4].Value.ToString();
            dtpNgayVaoLam.Text = dtgvNhanVien.CurrentRow.Cells[5].Value.ToString();
            tboxTenNhom.Text = dtgvNhanVien.CurrentRow.Cells[6].Value.ToString();
            tboxTenTaiKhoan.Text = dtgvNhanVien.CurrentRow.Cells[7].Value.ToString();
        }

        private void tbnLuuThongTin_Click(object sender, EventArgs e)
        {
            if(temp==0)
            {
                ChinhSuaThongTin();
                Reset();
            }

            if(temp==1)
            {
                SqlCommand cmd;
                if (tboxTenNhanVien.Text == "")
                {
                    MessageBox.Show("Chưa nhập tên nhân viên!");
                }
                else if (tboxSoDienThoai.Text == "")
                {
                    MessageBox.Show("Chưa nhập số điện thoại!");

                }
                else if (tboxTenNhom.Text == "")
                {
                    MessageBox.Show("Chưa nhập tên nhóm!");

                }
                else if (tboxDiaChi.Text == "")
                {
                    MessageBox.Show("Chưa nhập địa chỉ!");
                }
                else if (dtpNgaySinh.Value >= DateTime.Today)
                {
                    MessageBox.Show("Chưa chọn ngày sinh!");
                }
                else if (cbxGioiTinhNhanVien.SelectedIndex == -1)
                {
                    MessageBox.Show("Chưa xác định giới tính!");
                }

                else
                {
                    DialogResult dr = MessageBox.Show("Bạn có chắc muốn thêm nhân viên này?", "Xác nhận", MessageBoxButtons.YesNo);
                    if (dr == DialogResult.Yes)
                    {
                        try
                        {
                            conn.Open();
                            cmd = new SqlCommand("insert into  NhanVien values(N'" + tboxTenNhanVien.Text + "',N'" + gioitinh + "','" + dtpNgaySinh.Value + "',N'" + tboxTenNhom.Text + "','" + tboxSoDienThoai.Text + "',N'" + tboxDiaChi.Text + "','" + dtpNgayVaoLam.Value + "', NULL,0 )", conn);
                            cmd.ExecuteNonQuery();
                            MessageBox.Show("Đã thêm mới một nhân viên!");

                        }
                        catch (Exception evt)
                        {
                            MessageBox.Show(evt.Message);
                        }
                        finally
                        {
                            if (conn != null)
                            {
                                conn.Close();
                            }
                        }
                    }
                    else if (dr == DialogResult.No)
                    {
                        MessageBox.Show("Thêm nhân viên không thành công!");
                    }

                    LayMaNV();
                    ThemMucLuong();
                    LayMotNhanVien();
                    Reset();
                }

            }

            Action("Save");

        }

        private void btnHuy_Click(object sender, EventArgs e)
        {
            Action("Cancel");
            Reset();
        }

        private void btnInBienLai_Click(object sender, EventArgs e)
        {
            Reportdanhsachnhanvien report = new Reportdanhsachnhanvien();
            report.Show();
        }

        

        
    }
}
